package Testdmo4;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:周次煜
 * Date: 2024-03-14
 * Time：18:33
 */
public class Test1 {

    // 字符串分割
    public static void main1(String[] args) {

        String s1="abc\\id\\0pi";

        // $  \ 都需要加上双 \\
        String[]s2=s1.split("\\\\");

        for (String s:s2) {
            System.out.println(s);
        }


        System.out.println("===============");

        String s3="uoi0nh%po&afj6";



        // 方法一： 字符串中 分割符 取或
        s2=s3.split("&|%");


        for (String s:s2) {
            System.out.println(s);
        }


        // 方法二： 字符串 不同分割符循环 分
        System.out.println("等效于：");
        System.out.println("****************");


        s2=s3.split("&");


        for(String s:s2) {
            s2=s.split("%");

            for(String s9: s2) {
                System.out.println(s9);

            }
        }

    }

    // 字符串拼接
    public static void main2(String[] args) {


       // 方法一： String 拼接法
        String s1= new String("Hello");
        String s2= new String("World");
        s1 += s2;
        System.out.println(s1);

        System.out.println("================");

        // 方法二： StringBuilder 拼接法

        StringBuilder s3= new StringBuilder("oh MyGod");

        s3.append(1234);

        System.out.println(s3);


        System.out.println("%%%%%%%%%%%%%%%%%%");

        // 方法三： StringBuffer 拼接法

        StringBuffer s4 =new StringBuffer("haha");
        s4.append("hehe");
        System.out.println(s4);

        // StringBuilder 倒置法

        StringBuilder s5= new StringBuilder("4131 025");
        s5.reverse();
        System.out.println(s5);
    }


    // 两字符串点比较
    public static void main3(String[] args) {


        String s1="Abc";
        String s2="abc";

        // 判断是否相同
        // （实际密码）
        boolean b1=s1.equals(s2);
        System.out.println(b1);

        // 无大小写区别，判断是否相同
        // (验证码)
        boolean b2=s2.equalsIgnoreCase(s1);
        System.out.println(b2);


        // 两个字符串比较大小
        int b3=s1.compareTo(s2);
        if (b3>0) {
            System.out.println("s1>s2");
        } else if (b3<0) {
            System.out.println("s1<s2");
        } else {
            System.out.println("s1=s2");
        }

    }


    // 查找字符串中的某个字符
    public static void main4(String[] args) {
        String s="abababcideg";

        // 正向索引查找
        int a=s.indexOf("de");
        System.out.println(a);

        // 逆向查找
        a=s.lastIndexOf("ba");
        System.out.println(a);

        System.out.println("================");


        // 指定位置开始查找 返回该字符的索引
        a=s.indexOf("a",3);
        System.out.println(a);
    }

//     替换字符串中的某索引的字符
    public static void main7(String[] args) {

        String s1="Ma Boy";

        // 返回 ascll
        int a= s1.codePointAt(1);
        System.out.println(a);

        System.out.println("单字符替换");
        // 单字符替换
        String s2= s1.replace("a","y");
        System.out.println(s2);


        System.out.println("复制拼接");
        // 复制拼接
        s2="ababababpos";
        s1=s2.repeat(4);
        System.out.println(s1);


        System.out.println("替换第一个");
        // 将出现的目标第一个字符或字符串进行替换

        s1=s2.replaceFirst("ab","www");
        System.out.println(s1);


        // 替换 所以出现的 目标字符或 字符串
        s1=s2.replaceAll("ab","12");
        System.out.println(s1);

    }

    // 某位置截断 字符串
    public static void main8(String[] args) {

        String s1="My Girl";

        // 从某索引截断到 末尾 包括该索引下的位置。
        String s2=s1.substring(3);
        System.out.println(s2);


        System.out.println("==============");
        // 从 起始索引到 终止索引 截断
        s2 =s1.substring(3,6);
        System.out.println(s2);


    }

    //抽离字符串中的每个字符，大小写判断 以及 大小写转化
    public static void main9(String[] args) {
        String s ="aAopabc";
        String s1=s.toUpperCase();

        System.out.println(s1);

        System.out.println(s);
        for (int i = 0; i < s.length(); i++) {
            char a=s.charAt(i);
            if (Character.isLowerCase(a)) {
                System.out.print (a);
            }
        }

    }


    // 字符串与数字之间的转化

    public static void main(String[] args) {


        String s="12345";

        // 字符串转化为 整数
        int a= Integer.valueOf(s);
        System.out.println(a+1);

        a=123890;


        // 整数转化为字符串

        // 方法一：
        // 双引号强转
        s=a+"";
        System.out.println(s+4);


        // 方法二：
        // 包装类转化

        s= String.valueOf(a);
        System.out.println(s+9);



        // 格式化转化

        s=String.format("%d-%d-%d",12,13,15);
        System.out.println(s);
    }

    // 去空格

    public static void main11(String[] args) {
        String s="    hjia jas sa    ";
        s=s.trim();
        System.out.println(s);

    }

}
